package Homework01;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*	5. hashmap去做
合并 输出数组两个数组中都有元素则去除
[1,2,3]
[3,4,5,2]
得到[1,4,5]*/
public class work05 {
    public static void main(String[] args) {
        int[] arr1 = {1, 2, 3};
        int[] arr2 = {3, 4, 5, 2};

        int[] result = mergeAndRemoveDuplicates(arr1, arr2);

        System.out.println("合并去重后的数组：");
        System.out.println(Arrays.toString(result));
    }

    public static int[] mergeAndRemoveDuplicates(int[] arr1, int[] arr2) {
        HashMap<Integer, Integer> hashMap = new HashMap<>();

        // 将第一个数组的元素添加到HashMap中
        Arrays.stream(arr1).forEach(num -> hashMap.put(num, 1));

        // 使用Stream流遍历第二个数组，并更新HashMap中的值
        Arrays.stream(arr2).forEach(num -> hashMap.merge(num, 1, Integer::sum));

        // 使用Stream流过滤得到两个数组中都有的元素
        int[] result = hashMap.entrySet().stream().filter(entry -> entry.getValue() == 1).mapToInt(Map.Entry::getKey)
                .toArray();

        return result;
    }
}
